package controle;

import conexao.ConectEvent;
import conexao.TratadorConexao;
import util.Constantes;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import visao.CadPreferencias;
import visao.DialogAbstrato;

public class PreferenciasControle extends AbstractControl {

  private CadPreferencias v_pref;

  public PreferenciasControle(DialogAbstrato v) {
    this.v_pref = (CadPreferencias) v;
    addOuvinte();
    v_pref.setModal(true);
    v_pref.setVisible(true);
  }

// <editor-fold defaultstate="collapsed" desc="Responde a eventos com origem nas visões">
  @Override
  /* dependendo do actionCommand no obj CadPreferencias ele ira executar os
  metodos dentro do metodo actionPerformed abaixo*/
  public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals(Constantes.ALTERAR_ID)) {
      createProfessor();
    } else {
      //remove esse controle como ouvinte do DAO
      TratadorConexao.getInstance().removeConectOuvinte(this);
      v_pref.close();
    }
  }

  @Override
  public void windowClosing(WindowEvent e) {
    switch (e.getID()) {
      case WindowEvent.WINDOW_CLOSING:
        TratadorConexao.getInstance().addConectOuvinte(this);
        v_pref.close();
        break;
    }
  }// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Enchaminha eventos com origem no DAO">
  @Override
  public void conectChange(ConectEvent e) {
    v_pref.modelConectChange(e);
  }// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Métodos privados + CRUD">
  private void addOuvinte() {
    v_pref.addActionListener(this);
    v_pref.addWindowOuvinte(this);
    TratadorConexao.getInstance().addConectOuvinte(this);
  }

  private void createProfessor() {
    String ID = v_pref.getIDServ();
    String porta = v_pref.getPorta();
  }

  private void removeProfessor() {
    
  }

  private void updateProfessor() {
    String ID = v_pref.getIDServ();
    String porta = v_pref.getPorta();

    
  }

  private boolean verificarOK(String nome, String login, String senha, int tipo) {
    
    
    return true;
  }// </editor-fold>
}
